import Vue from 'vue';
import Vuex from 'vuex'
import App from './App.vue';
import router from './router';
import Vant from 'vant';
import 'vant/lib/index.css';
import axios from 'axios';
import storeLocal from 'storejs';
import store from './store/index';
import "vue-easytable/libs/theme-default/index.css"; // import style
import VueEasytable from "vue-easytable"; // import library



// Vue.use(axios)

Vue.prototype.$axios = axios
Vue.prototype.$store = storeLocal
Vue.prototype.$store2 = store

Vue.use(Vant)
Vue.use(Vuex)
Vue.use(VueEasytable)
Vue.config.productionTip = false

router.beforeEach((to, from, next) => {
  /* 路由发生变化修改页面title */
  if (to.meta.title) {
    document.title = to.meta.title
  }
  next()
})

// 在请求头中加token
axios.interceptors.request.use(
    config => {
        // 判断是否存在token，如果存在的话，则每个http header都加上token
        // let token = sessionStorage.getItem('Authorization')
        let token = storeLocal.get('state.token')
        if (!config.headers.hasOwnProperty('Authorization') && token || true) {
            config.headers.Authorization = token;
            console.log('main.js 中正在设置', token);
        }
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

axios.interceptors.response.use(
    response => {
        let code = response.data.code;
        if (code == 70004 || code == 70002 || code == 70006) {
            console.log('后置拦截')
            // this.$message.error(response.data.message)
            // storeLocal.removeItem('state.token')
            router.push('/login')
        } else {
            return response
        }
    },
    error => {
        return Promise.reject(error)
    }
);


// axios.interceptors.response.use(data => {
//     let code = data.data.code;
//     if (code == 70004 || code == 70002 || code == 70006) {
//         doSomething..
//     }
//     return data; //别忘了返回data
// }, error => {
//     return Promise.reject(error)
// })


/*====================重点开始=========================*/


//异步请求前在header里加入token
// axios.interceptors.request.use(
//     config => {
//         // 判断是否存在token，如果存在的话，则每个http header都加上token
//         let token = sessionStorage.getItem('token')
//         if (!config.headers.hasOwnProperty('Authorization') && token) {
//             config.headers.Authorization = token;
//             console.log('main.js 中正在设置')
//         }
//         return config
//     },
//     function(error) {
//         // 对请求错误做些什么
//         return Promise.reject(error)
//     }
// )

//异步请求后，判断token是否过期
// axios.interceptors.response.use(
//     response => {
//         if (response.data.status === 403) {
//             this.$message.error(Response.data.message)
//             sessionStorage.removeItem('token')
//             this.$router.push('/login')
//         } else {
//             return response
//         }
//     },
//     error => {
//         return Promise.reject(error)
//     }
// )
/*====================重点结束=========================*/



new Vue({
    router,
    render: h => h(App)
}).$mount('#app')
